<?php

if(!@file_exists('../Controller/Objects/Atleta.php') || 
   !@file_exists('../Controller/Objects/PerfilAtleta.php') ) 
{
   include_once '../../Controller/Objects/Atleta.php';
   include_once '../../Controller/Objects/PerfilAtleta.php';
} 
else 
{
   include_once '../Controller/Objects/Atleta.php';
   include_once '../Controller/Objects/PerfilAtleta.php';
}

include_once 'Conexao.php';
include_once 'Conexion.php';
include_once 'ExcecaoLoginSenhaInvalidos.php';

class AtletaDataBase {
    
    public function inserir(Atleta $atleta){
        $con = new Conexion();
        $con->getCon()->autocommit(FALSE);     
        
        $login = $atleta->getPerfilAtleta()->getLogin();
        $senha = $atleta->getPerfilAtleta()->getSenha();
        $status = $atleta->getPerfilAtleta()->getStatus();
        $codigoValidacao=$atleta->getPerfilAtleta()->getCodigoValidacao();
        
        $idAtleta = $atleta->getIdAtleta();
        $email = $atleta->getEmail();                
        $biografia = $atleta->getBiografia();
        $altura = $atleta->getAlturaCentimetros();
        $tamanhoCalcado = $atleta->getTamanhoCalcado();
        $nome = $atleta->getNomeCompleto();
        $cidade = $atleta->getLocalizacaoCidade();
        $estado = $atleta->getLocalizacaoEstado();
        $nacionalidade = $atleta->getNacionalidade();
        $profissao = $atleta->getProfissao();
        $diaNascimento = $atleta->getDiaNascimento();
        $mesNascimento = $atleta->getMesNascimento();
        $anoNascimento = $atleta->getAnoNascimento();
        $linkOrkut = $atleta->getLinkOrkut();
        $linkFacebook = $atleta->getLinkFacebook();
        $linkBlog = $atleta->getLinkBlog();
        $linkTwitter = $atleta->getLinkTwitter();
        $tb_perfilAtleta_login = $atleta->getPerfilAtleta()->getLogin();
        
        $sqlA = "INSERT INTO tb_perfilatleta (login,senha,status,codigoValidacao) VALUES ('$login','$senha','$status','$codigoValidacao')";
        $sqlB = "INSERT INTO tb_atleta (id_atleta,email,biografia,altura,tamanhoCalcado,nome,cidade,estado,nacionalidade,profissao,diaNascimento,mesNascimento,anoNascimento,linkOrkut,linkFacebook,linkBlog,linkTwitter,tb_perfilatleta_login) VALUES ('$idAtleta','$email','$biografia','$altura','$tamanhoCalcado','$nome','$cidade',"
                . "'$estado','$nacionalidade','$profissao','$diaNascimento','$mesNascimento','$anoNascimento',"
                . "'$linkOrkut','$linkFacebook','$linkBlog','$linkTwitter','$tb_perfilAtleta_login')";
        
        $rA = $con->getCon()->query($sqlA);
        $rB = $con->getCon()->query($sqlB);

        if($rA && $rB){
            $con->getCon()->commit();
        }else{
            $con->getCon()->rollback();  
            throw new Exception('Erro ao cadastrar atleta.');
        }
        $con->fechar();
    }
    
    public function recuperarDadosAtleta($login){
        $conexao=new Conexao();
        $conexao->abrir();
        $sql = "SELECT * FROM tb_perfilatleta WHERE login ='$login'";
        $resultSet = mysql_query($sql);
        if(mysql_num_rows($resultSet)==1){
            while($line=mysql_fetch_array($resultSet)){
                $login = $line['login'];
                $senha = $line['senha'];
                $status = $line['status'];
                $codigoValidacao = $line['codigoValidacao'];
                $perfilAtleta = new PerfilAtleta($login, $senha, $status, $codigoValidacao);
            }
            $sql2 = "SELECT * FROM tb_atleta WHERE tb_perfilatleta_login = '$login'";
            $resultSet2 = mysql_query($sql2);
            while($line2=mysql_fetch_array($resultSet2)){
                $idAtleta = $line2['id_atleta'];
                $email = $line2['email'];
                $biografia = $line2['biografia'];
                $alturaCentimetros = $line2['altura'];
                $tamanhoCalcado = $line2['tamanhoCalcado'];
                $localizacaoCidade = $line2['cidade'];
                $localizacaoEstado = $line2['estado'];
                $nomeCompleto = $line2['nome'];
                $nacionalidade = $line2['nacionalidade'];
                $profissao = $line2['profissao'];
                $diaNascimento = $line2['diaNascimento'];
                $mesNascimento = $line2['mesNascimento'];
                $anoNascimento = $line2['anoNascimento'];
                $linkOrkut = $line2['linkOrkut'];
                $linkFacebook = $line2['linkFacebook'];
                $linkBlog = $line2['linkBlog'];
                $linkTwitter = $line2['linkTwitter'];
                $conexao->fechar();
                $atleta = new Atleta($idAtleta, $email, $biografia, $alturaCentimetros, $tamanhoCalcado, $localizacaoCidade, $localizacaoEstado, $nomeCompleto, $nacionalidade, $profissao, $diaNascimento, $mesNascimento, $anoNascimento, $linkOrkut, $linkFacebook, $linkBlog, $linkTwitter, $perfilAtleta);
                return $atleta;               
            }    
        }else{
            throw new ExcecaoLoginSenhaInvalidos();
        }
    }

    public function recuperar(PerfilAtleta $perfilAtleta){
        $conexao=new Conexao();
        $conexao->abrir();
        
        $login = $perfilAtleta->getLogin();
        $senha = $perfilAtleta->getSenha();
        $sql = "SELECT * FROM tb_perfilatleta WHERE login ='$login' AND senha ='$senha'";
        $resultSet = mysql_query($sql);
        if(mysql_num_rows($resultSet)==1){
            while($line=mysql_fetch_array($resultSet)){
                $login = $line['login'];
                $senha = $line['senha'];
                $status = $line['status'];
                $codigoValidacao = $line['codigoValidacao'];
                $perfilAtleta = new PerfilAtleta($login, $senha, $status, $codigoValidacao);
            }
            $sql2 = "SELECT * FROM tb_atleta WHERE tb_perfilatleta_login = '$login'";
            $resultSet2 = mysql_query($sql2);
            while($line2=mysql_fetch_array($resultSet2)){
                $idAtleta = $line2['id_atleta'];
                $email = $line2['email'];
                $biografia = $line2['biografia'];
                $alturaCentimetros = $line2['altura'];
                $tamanhoCalcado = $line2['tamanhoCalcado'];
                $localizacaoCidade = $line2['cidade'];
                $localizacaoEstado = $line2['estado'];
                $nomeCompleto = $line2['nome'];
                $nacionalidade = $line2['nacionalidade'];
                $profissao = $line2['profissao'];
                $diaNascimento = $line2['diaNascimento'];
                $mesNascimento = $line2['mesNascimento'];
                $anoNascimento = $line2['anoNascimento'];
                $linkOrkut = $line2['linkOrkut'];
                $linkFacebook = $line2['linkFacebook'];
                $linkBlog = $line2['linkBlog'];
                $linkTwitter = $line2['linkTwitter'];
                $conexao->fechar();
                $atleta = new Atleta($idAtleta, $email, $biografia, $alturaCentimetros, $tamanhoCalcado, $localizacaoCidade, $localizacaoEstado, $nomeCompleto, $nacionalidade, $profissao, $diaNascimento, $mesNascimento, $anoNascimento, $linkOrkut, $linkFacebook, $linkBlog, $linkTwitter, $perfilAtleta);
                return $atleta;
            }    
        }else{
            throw new ExcecaoLoginSenhaInvalidos();
        }
        $conexao->fechar();    
    }
    
    
    public function alterar(Atleta $atleta){
        //login não podera ser alterado        
        $con=new Conexion();
        $con->getCon()->autocommit(FALSE);     
        
        $login = $atleta->getPerfilatleta()->getLogin();
        $senha = $atleta->getPerfilatleta()->getSenha();
        $email = $atleta->getEmail();
        
        $biografia = $atleta->getBiografia();
        $altura = $atleta->getAlturaCentimetros();
        $tamanhoCalcado = $atleta->getTamanhoCalcado();
        $nome = $atleta->getNomeCompleto();
        $cidade = $atleta->getLocalizacaoCidade();
        $estado = $atleta->getLocalizacaoEstado();
        $nacionalidade = $atleta->getNacionalidade();
        $profissao = $atleta->getProfissao();
        $diaNascimento = $atleta->getDiaNascimento();
        $mesNascimento = $atleta->getMesNascimento();
        $anoNascimento = $atleta->getAnoNascimento();
        $linkOrkut = $atleta->getLinkOrkut();
        $linkFacebook = $atleta->getLinkFacebook();
        $linkBlog = $atleta->getLinkBlog();
        $linkTwitter = $atleta->getLinkTwitter();
                
        
        $sqlA = "UPDATE tb_atleta SET biografia ='$biografia',altura='$altura',tamanhoCalcado='$tamanhoCalcado',nome='$nome',nacionalidade='$nacionalidade',"
        . "cidade='$cidade',estado='$estado',profissao='$profissao',diaNascimento='$diaNascimento', mesNascimento='$mesNascimento',anoNascimento = '$anoNascimento',"
        . "linkOrkut='$linkOrkut',linkFacebook='$linkFacebook', linkBlog='$linkBlog', linkTwitter='$linkTwitter' WHERE tb_perfilAtleta_login = '$login'";
        $sqlB = "UPDATE tb_perfilatleta SET senha = '$senha' WHERE login = '$login'";           
        
        $rA = $con->getCon()->query($sqlA);
        $rB = $con->getCon()->query($sqlB);

        if($rA && $rB){
            $con->getCon()->commit();
        }else{
            $con->getCon()->rollback();  
            throw new Exception('Erro ao atualizar atleta.');
        }
        $con->fechar();
    }    
    
    public function excluir (Atleta $atleta){    
        $conexao=new Conexao();
        $conexao->abrir();
        try {
            $perfilAtleta = $atleta->getPerfilAtleta();
            $login=$perfilAtleta->getLogin();
            $sql = "DELETE FROM tb_perfilatleta WHERE login='$login'";
            //comunidade, eventos,topicos e msgens serao excluidos por cascata
            mysql_query($sql);
            if (mysql_error($conexao->getCon())) {
                throw new Exception ();            
            }            
        } catch (Exception $exc) {
            throw new Exception('Nao foi possivel realizar exclusao.');
        }
        $conexao->fechar();
    }  
          
    public function verificarConta(Atleta $atleta){
        $conexao=new Conexao();
        $conexao->abrir();
        $perfilAtleta = $atleta->getPerfilAtleta();
        $login=$perfilAtleta->getLogin();
        $sql = "UPDATE tb_perfilatleta SET status='verificado' WHERE login='$login'";
        if(!mysql_query($sql)){
            $conexao->fechar();
            throw new Exception();
        }
        $conexao->fechar();
    }
	
	public function pesquisarAtleta(Atleta $atleta){
		
        $email = $atleta->getEmail();
        
        $biografia = $atleta->getBiografia();
        $altura = $atleta->getAlturaCentimetros();
        $tamanhoCalcado = $atleta->getTamanhoCalcado();
        $nome = $atleta->getNomeCompleto();
        $cidade = $atleta->getLocalizacaoCidade();
        $estado = $atleta->getLocalizacaoEstado();
        $nacionalidade = $atleta->getNacionalidade();
        $profissao = $atleta->getProfissao();
        $diaNascimento = $atleta->getDiaNascimento();
        $mesNascimento = $atleta->getMesNascimento();
        $anoNascimento = $atleta->getAnoNascimento();
        $linkOrkut = $atleta->getLinkOrkut();
        $linkFacebook = $atleta->getLinkFacebook();
        $linkBlog = $atleta->getLinkBlog();
        $linkTwitter = $atleta->getLinkTwitter();
         
		//TODO: � necess�rio organizar melhor essa estrutura de Pesquisa.
		$sqlA = "select * from tb_atleta where email = '$email' or altura = '$altura' or nome = '$nome' or estado = '$estado' or cidade = '$cidade' or nacionalidade = '$nacionalidade'"
		." profissao = '$profissao' or biografia = '$biografia'";
		
		//Esse select da linha abaixo serve para testar se a fun��o pesquisarAtleta est� funcionando.
		#$sqlA = "select * from tb_atleta where"; 
        
        $conexao=new Conexao();
        $conexao->abrir();
        
		$array_atletas = Array();
		$rA = mysql_query($sqlA);
		while ($line2 = mysql_fetch_array($rA)) {
                        $idAtleta = $line2['id_atleta'];
			$email = $line2['email'];
			$biografia = $line2['biografia'];
			$alturaCentimetros = $line2['altura'];
			$tamanhoCalcado = $line2['tamanhoCalcado'];
			$localizacaoCidade = $line2['cidade'];
			$localizacaoEstado = $line2['estado'];
			$nomeCompleto = $line2['nome'];
			$nacionalidade = $line2['nacionalidade'];
			$profissao = $line2['profissao'];
			$diaNascimento = $line2['diaNascimento'];
			$mesNascimento = $line2['mesNascimento'];
			$anoNascimento = $line2['anoNascimento'];
			$linkOrkut = $line2['linkOrkut'];
			$linkFacebook = $line2['linkFacebook'];
			$linkBlog = $line2['linkBlog'];
			$linkTwitter = $line2['linkTwitter'];
			$perfilAtleta = new PerfilAtleta("", "", NULL, NULL);
			$tmpAtleta = new Atleta($idAtleta, $email, $biografia, $alturaCentimetros, $tamanhoCalcado, $localizacaoCidade, $localizacaoEstado, $nomeCompleto, $nacionalidade, $profissao, $diaNascimento, $mesNascimento, $anoNascimento, $linkOrkut, $linkFacebook, $linkBlog, $linkTwitter, $perfilAtleta);
			array_push($array_atletas, $tmpAtleta);
		}
		
        $conexao->fechar();
		
		return $array_atletas;
    }
    //=================================================================================================
    //                          recuperar atleta atraves do email
    //=================================================================================================
    public function recuperarAtleta($email){
        $conexao=new Conexao();

        $conexao->abrir();
        $SQL_a = "SELECT * FROM tb_perfilatleta WHERE login=(SELECT 
            tb_perfilatleta_login FROM tb_atleta WHERE email='$email')";
        
        $resultado_a = mysql_query($SQL_a);
        
        if(mysql_num_rows($resultado_a)==1){
            while($line=mysql_fetch_array($resultSet)){
                $login = $line['login'];
                $senha = $line['senha'];
                $status = $line['status'];
                $codigoValidacao = $line['codigoValidacao'];
                $perfilAtleta = new PerfilAtleta($login, $senha, $status, $codigoValidacao);
            }
            $SQL_b = "SELECT * FROM tb_atleta WHERE email='$email'";
            
            $resultado_b = mysql_query($SQL_b);
            
            while($line2=mysql_fetch_array($resultado_b)){
                $idAtleta = $line2['id_atleta'];
                $email = $line2['email'];
                $biografia = $line2['biografia'];
                $alturaCentimetros = $line2['altura'];
                $tamanhoCalcado = $line2['tamanhoCalcado'];
                $localizacaoCidade = $line2['cidade'];
                $localizacaoEstado = $line2['estado'];
                $nomeCompleto = $line2['nome'];
                $nacionalidade = $line2['nacionalidade'];
                $profissao = $line2['profissao'];
                $diaNascimento = $line2['diaNascimento'];
                $mesNascimento = $line2['mesNascimento'];
                $anoNascimento = $line2['anoNascimento'];
                $linkOrkut = $line2['linkOrkut'];
                $linkFacebook = $line2['linkFacebook'];
                $linkBlog = $line2['linkBlog'];
                $linkTwitter = $line2['linkTwitter'];
                $conexao->fechar();
                $atleta = new Atleta($idAtleta, $email, $biografia, $alturaCentimetros, $tamanhoCalcado, $localizacaoCidade, $localizacaoEstado, $nomeCompleto, $nacionalidade, $profissao, $diaNascimento, $mesNascimento, $anoNascimento, $linkOrkut, $linkFacebook, $linkBlog, $linkTwitter, $perfilAtleta);
                return $atleta;               
            }    
        }
    }
}
?>
